Limitations and considerations
You should be aware of the following limitations and considerations when using Google Cloud SQL for PostgreSQL as a source:
- The database name cannot include a semi-colon (;).
- Capturing changes while the database is in Hot Standby mode is not supported.
- Replication of multiple tables with the same name but a different case (e.g. table1, TABLE1 and Table1) may cause unpredictable behavior and is therefore not supported.
- The PostgreSQL read replica (in a High Availability environment) is supported from PostgreSQL 16 only.
- Change processing of TRUNCATE operations is not supported.
- Deferred Constraints are not supported.
-
Unique Indexes with CASE expressions are not supported.
-
REPLICA IDENTITY support:
-
If FULL is used, before-image values will be replicated for all table columns. Only when using this mode is it possible to redefine the target index.
-
If DEFAULT is used, replication is supported only when a table contains a Primary key. Additionally, only Primary Key columns of the before-image will be replicated.
-
USING INDEX is supported only when the specified Unique Index is the only unique constraint for the table (meaning that the table does not have a Primary Key or another Unique Index). In this case, it is supported exactly the same as the DEFAULT value described above.
-
As Replicate does not verify the REPLICA IDENTITY value, make sure you define the correct value.
-
- The “Start Process Changes from Timestamp” run option is not supported.
-
Change processing of [CREATE | ALTER | DROP] table DDLs are supported unless they are held in an inner function/procedure body block or in other nested constructs.
For example, the following change will not be captured:
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name varchar(40) NOT NULL);
END;
$$;
-
When Support partitioned tables in CDC is enabled in the Advanced tab, the following DDLs are not supported:
- Drop partition
- Detach partition
- Attach partition - with data
- An UPDATE operation that involves two partitions (moving a record between partitions) will be replicated to the target table using DELETE and INSERT operations. If the Store Changes replication mode is enabled, the UPDATE will appear as separate INSERT and DELETE operations in the corresponding Change Table.
-
When using the Parallel Load feature, table segmentation according to partitions or sub-partitions is not supported.
- When using filters that do not contain a Primary Key, DELETE operations will not be captured.
-
When capturing changes to source tables, a RENAME TABLE operation will be captured only if it is preceded by a DML operation.
-
PostGIS data types are not supported.
-
Forced failover is a feature of Azure Database for PostgreSQL – Flexible Server. If forced failover occurs when replicating data from Azure Database for PostgreSQL – Flexible Server, the task will stop and will need to be reloaded.
-
The SQL MERGE command introduced in PostgreSQL 15.x has not been certified.
-
The AR_H_USER header column is not supported.